// client/pages/user/user.js
const app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    console.log(app)
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo
      });

    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },

  //获取用户信息
  onGetUserInfo: function (e) {
    let _this = this;
    wx.showLoading({
      title: '登录中',
    })

    console.log(e)
    if (e.detail.errMsg == 'getUserInfo:ok'){
      //用户统一授权
      app.globalData.auth['scope.userInfo'] = true;
      wx.cloud.callFunction({
        name:'getUserInfo',
        data:{
          getSelf: true
        },
        success: res=>{
          if (res.errMsg == "cloud.callFunction:ok") {
            console.log(res)
            if (res.result) {
              //如果成功获取到
              //将获取到的用户资料写入app.js全局变量
              app.globalData.userInfo = res.result.data.userData
              app.globalData.userId = res.result.data._id
              _this.setData({
                userInfo: app.globalData.userInfo
              })
              wx.hideLoading()
              wx.switchTab({
                url: '/pages/user/user'
              })
            } else {
              //未成功获取到用户信息
              //调用注册方法
              console.log("未注册")
              _this.register({
                nickName: e.detail.userInfo.nickName,
                gender: e.detail.userInfo.gender,
                avatarUrl: e.detail.userInfo.avatarUrl,
                region: ['none', 'none', 'none'],
                campus: "none",
                studentNumber: "none",
                phone:'',
                points:5
              })
            }
          }

        }, fail: err => {
          wx.showToast({
            title: '请检查网络您的状态',
            duration: 800,
            icon: 'none'
          })
          console.error("get_setUserInfo调用失败", err.errMsg)
        }
      })
    } else {
      console.log("未授权")
    }
  },

  register: function(e){
    let _this = this;
    wx.cloud.callFunction({
      name:'getUserInfo',
      data:{
        setSelf: true,
        userData: e
      },
      success: res=>{
        if (res.errMsg == "cloud.callFunction:ok" && res.result) {
          app.globalData.userInfo = e
          app.globalData.userId = res.result._id
          _this.setData({
            userInfo: app.globalData.userInfo
          })
          wx.hideLoading()
          wx.switchTab({
            url: '/pages/user/user'
          })
        } else {
          console.log("注册失败", res)
          wx.showToast({
            title: '请检查网络您的状态',
            duration: 800,
            icon: 'none'
          })
        }
      },
      fail: err => {
        wx.showToast({
          title: '请检查网络您的状态',
          duration: 800,
          icon: 'none'
        })
        console.error("get_setUserInfo调用失败", err.errMsg)
      }
    })
  },

  onLogout: function(){
    app.globalData.userInfo = null;
    app.globalData.userId=''
    this.setData({
      userInfo:null
    })
  },


/*   bindGetUserInfo: function(){
    // 必须是在用户已经授权的情况下调用
    let _this = this;
    wx.getUserInfo({
      withCredentials: true,
      success(res) {
        console.log(res)
        app.globalData.userInfo = res.userInfo;
        app.globalData.encryptedData = res.encryptedData;
        _this.setData({
          userInfo: app.globalData.userInfo
        });
      }
    })
  } */
})